// Copyright (c) .NET Core Community. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

namespace DotNetCore.CAP.MongoDB;

// ReSharper disable once InconsistentNaming
public class MongoDBOptions
{
    /// <summary>
    /// Gets or sets the database name to use when creating database objects.
    /// Default value: "cap"
    /// </summary>
    public string DatabaseName { get; set; } = "cap";

    /// <summary>
    /// MongoDB database connection string.
    /// Default value: "mongodb://localhost:27017"
    /// </summary>
    public string DatabaseConnection { get; set; } = "mongodb://localhost:27017";

    /// <summary>
    /// MongoDB received message collection name.
    /// Default value: "received"
    /// </summary>
    public string ReceivedCollection { get; set; } = "cap.received";

    /// <summary>
    /// MongoDB published message collection name.
    /// Default value: "published"
    /// </summary>
    public string PublishedCollection { get; set; } = "cap.published";

    /// <summary>
    /// MongoDB lock collection name.
    /// Default value: lock
    /// </summary>
    public string LockCollection { get; set; } = "cap.lock";


    internal string Version { get; set; } = default!;
}